Run

您所在的位置:网站首页 visual basic运行时错误 Run

Run

2024-05-10 21:28| 来源: 网络整理| 查看: 265

Symptoms

When you try to run a Microsoft Visual Basic for Applications macro that creates or opens a Microsoft PowerPoint presentation, you may receive an error message that resembles the following error message:

Run-time error '-2147188160 (80048240)':

Application (unknown member): Invalid request. There is no currently active document window.

The same macro runs without error in Microsoft Office 97.

Cause

This behavior is caused by using any PowerPoint ActiveWindow or ActivePresentation property, method, or event when the PowerPoint program is not visible. The following sample code will cause this error.

Sub A() Dim oPpt As PowerPoint.Application Set oPpt = New PowerPoint.Application oPpt.Presentations.Add oPpt.Presentations(1).Slides.Add 1, ppLayoutBlank

'The following line causes the run-time error msgbox oPpt.ActiveWindow.Caption

End Sub

Note This error message does not occur in Microsoft PowerPoint 97.

Workaround

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure. However, they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.

To work around this behavior, add the following lines of code once in any sub procedure before any ActiveWindow or ActivePresentation calls.

If PowerPoint.Application.Version >= 9 Then 'window must be visible PowerPoint.Application.Visible = msoTrue End If

This code makes PowerPoint visible for Microsoft PowerPoint 2000 and for later versions of PowerPoint. PowerPoint 97 does not need to be made visible.

The sample code that is mentioned in the "Cause" section would change to the following code.

Sub A() Dim oPpt As PowerPoint.Application Set oPpt = New PowerPoint.Application oPpt.Presentations.Add oPpt.Presentations(1).Slides.Add 1, ppLayoutBlank If oPpt.Version >= 9 Then 'window must be visible oPpt.Visible = msoTrue End If oPpt.ActiveWindow.View.GotoSlide 1End Sub

Note This workaround may not work for Microsoft Office PowerPoint 2007.

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3